package cate.game.pvp.teampvp;

import cate.game.play.part.PlaySide;

import java.util.List;

public class TeamPvpReqParams {
    public static final class TeamPvpInviteListReq {
        public String leaderUid;

        public static TeamPvpInviteListReq of(String leaderUid) {
            TeamPvpInviteListReq req = new TeamPvpInviteListReq();
            req.leaderUid = leaderUid;
            return req;
        }
    }

    public static final class TeamPvpInviteApplyReq {
        public String leaderUid;
        public String inviteUid;

        public static TeamPvpInviteApplyReq of(String leaderUid, String inviteUid) {
            TeamPvpInviteApplyReq req = new TeamPvpInviteApplyReq();
            req.leaderUid = leaderUid;
            req.inviteUid = inviteUid;
            return req;
        }
    }

    public static final class TeamPvpInviteAnswerReq {
        public String leaderUid;
        public String inviteUid;
        public boolean ok;

        public static TeamPvpInviteAnswerReq of(String leaderUid, String inviteUid, boolean ok) {
            TeamPvpInviteAnswerReq req = new TeamPvpInviteAnswerReq();
            req.leaderUid = leaderUid;
            req.inviteUid = inviteUid;
            req.ok = ok;
            return req;
        }
    }

    public static final class ChangeLeaderReq{
        public String leaderUid;
        public String newLeaderUid;

        public static ChangeLeaderReq of(String leaderUid, String newLeaderUid) {
            ChangeLeaderReq req = new ChangeLeaderReq();
            req.leaderUid = leaderUid;
            req.newLeaderUid = newLeaderUid;
            return req;
        }
    }

    public static final class ExitTeamReq {
        public String playerUid;

        public static ExitTeamReq of(String playerUid) {
            ExitTeamReq req = new ExitTeamReq();
            req.playerUid = playerUid;
            return req;
        }
    }

    public static final class SyncTeamDataReq{
        public PlaySide ps;
        public String abbr;
        public static SyncTeamDataReq of(PlaySide ps, String abbr) {
            SyncTeamDataReq req = new SyncTeamDataReq();
            req.ps = ps;
            req.abbr = abbr;
            return req;
        }
    }

    public static final class UpdateFightPosReq {
        public List<String> newUids;
        public String playerUid;

        public static UpdateFightPosReq of(String playerUid, List<String> newUids) {
            UpdateFightPosReq req = new UpdateFightPosReq();
            req.playerUid = playerUid;
            req.newUids = newUids;
            return req;
        }
    }

    public static final class SavePositionReq{
        public PlaySide ps;
        public String abbr;

        public static SavePositionReq of(PlaySide ps, String abbr) {
            SavePositionReq req = new SavePositionReq();
            req.abbr = abbr;
            req.ps = ps;
            return req;
        }
    }
}
